<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>类声明</title>
</head>

<body>
    <script>

        /**
         * ES6提供了更接近传统语言的写法,引入了Class(类)这个概念,作为对象的模板
         * 通过class关键字可以定义类.基本上, ES6的class可以看作只是一个语法糖,
         * 它的绝大部分功能,ES5都可以做到,新的class写法只是让对象原型的写法更加清晰
         * 更像面向对象编程的语法而已
         * 
         */


        // 手机
        function Phone(brand, price) {
            this.brand = brand;
            this.price = price;
        }

        // 添加方法
        Phone.prototype.call = function () {
            console.log("我可以打电话!!");
        }

        // 实例化对象
        let mi = new Phone('小米', 5999);
        mi.call();
        console.log(mi);

        // class
        class Shouji {
            // 构造方法 名字不能修改
            constructor(brand, price) {
                this.brand = brand;
                this.price = price;
            }

            // 方法必须使用该语法, 不能使用 ES5 的对象完整形式
            call() {
                console.log("我可以打电话!!");
            }
        }

        let onePlus = new Shouji("1+", 1999);

        console.log(onePlus);
    </script>
</body>

</html>